package Shifu.MainServer.Net;

import java.rmi.Remote;
import java.rmi.RemoteException;

/**
 * Interfaccia del MobileServer che verra utilizzata
 * della shell avviata sul server
 */

public interface SeederShellPeerServer extends LeecherShellPeerServer {

	/**
	 * Fa l'upload del file richiesto
	 * @param filename nome del file di cui fare l'upload
	 * @return 1 se ha avuto successo -1 altrimenti
	 * @exception RemoteException se ci sono problemi di connessione
	 */

	public int upload(String filename) throws RemoteException;

	/**
 	 * Elimina un file dal sistema
	 * @param i index del file da cancellare
	 * @return 1 se ha avuto successo -1 altrimenti
	 * @exception RemoteException se ci sono problemi di connessione
	 */

	public int removeFile(int i) throws RemoteException;


	/**
	 * Promuove un peer allo stato di Seeder
	 * @return lista dei peer presenti nel sistema
	 * @exception RemoteException se ci sono problemi di connessione
	 */

	public int promovePeer(int i) throws RemoteException;

}
